﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ch06
{
    class Program
    {

        static void Main(string[] args)
        {
            /*
            1、现实生活中什么是对象？
            看得见、摸得着、真是存在的实体就是对象

            2、现实生活中什么是类？
            类就是类型、分类，举例：学生、老师等都是类
            类就是根据具有相同特征、相同行为的对象抽象而来的一个概念

            3、面向对象的编程思想有什么优点？
            面向对象的编程思想更贴近现实生活，也就更容易的去理解和解决现实生活中的问题

            4、在计算机世界中什么是类？
            计算机世界中的类就相当于是模板、摸具，用来定义对象应该具有哪些特征和行为的

            5、在计算机世界中什么是对象？
            计算机世界中的对象是类的具体实现，是类的实例

            类是对象的模板，对象是类的实例，所以要先定义类，再根据类去创建对象

            6、分析或描述一个对象一般从两个方面描述：
            特征-》属性-》变量-》名词
            行为-》方法-》函数-》动词

            7、定义类的语法：
            class 类名
            {
                //定义对象的特征(属性)

                //定义对象的行为(方法)

            }

            8、用类来实例化对象，也就是创建对象
            类名 对象名 = new 类名();

            9、使用对象，也就是访问对象，无非也就是从两个方面
               访问对象的属性，调用对象的方法
               对象名.属性名
               对象名.方法名()

            */


            //创建一个学生对象
            Student zbw = new Student();
            
            //访问对象的属性
            zbw.name = "张博文";
            zbw.age = 16;
            zbw.sex = '男';

            //调用对象的方法
            zbw.intro();
            zbw.study();
            zbw.drink("苹果汁");
            long result = zbw.pow(2, 10);
            Console.WriteLine("{0}运算2的10次方结果为：{1}",zbw.name,result);

            Console.WriteLine(zbw);

            //系统Console类的WriteLine方法就是重载了的
            Console.WriteLine("大家好");
            Console.WriteLine(123);
            Console.WriteLine(98.5);
            //我们自己定义的print方法也重载了
            zbw.print("大家好");
            zbw.print(123);
            //zbw.print(98.5);  //没重载会报错
            


            //创建学生对象的同时初始化数据
            Student wjh = new Student("韦俊豪",18,'男');

            wjh.intro();

        }

        public void test()
        {

        }

    }
}
